<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>数据挖掘 | Data Mining Course</title>
    <link rel="stylesheet" href="../../css/main.css" />
    <link rel="stylesheet" href="../../css/tabs.css" />
    <script src="../../js/uikit.js"></script>
    <link href="../../css/prism.css" rel="stylesheet" />
    <script src="../../js/prism.js"></script>
  </head>

  <body>
    <div
      data-uk-sticky="animation: uk-animation-slide-top; sel-target: .uk-navbar-container; cls-active: uk-navbar-sticky; cls-inactive: uk-navbar-transparent; top: 300"
    >
      <nav class="uk-navbar-container pt-2 pb-2">
        <div class="uk-container">
          <div data-uk-navbar>
            <div class="uk-navbar-left">
              <a
                class="uk-navbar-item uk-logo uk-visible@m"
                href="../../index.html"
                >数据挖掘课程</a
              >
              <a
                class="uk-navbar-tuk-containeroggle uk-hidden@m"
                href="#offcanvas-docs"
                data-uk-toggle
                ><span data-uk-navbar-toggle-icon></span>
                <span class="uk-margin-small-left">目录</span></a
              >
              <ul class="uk-navbar-nav uk-visible@m">
                <li><a href="../index.html">文档</a></li>
              </ul>
            </div>
            <div class="uk-navbar-center uk-hidden@m">
              <a class="uk-navbar-item uk-logo" href="../../index.html"
                >数据挖掘课程</a
              >
            </div>
          </div>
        </div>
      </nav>
    </div>

    <div class="uk-section">
      <div class="uk-container">
        <div class="uk-grid-large" data-uk-grid>
          <div class="sidebar-fixed-width uk-visible@m">
            <div class="sidebar-docs uk-position-fixed uk-margin-top">
              <h5>关于这门课</h5>
              <ul class="uk-nav uk-nav-default doc-nav">
                <li><a href="../../index.html">大纲</a></li>
              </ul>
              <h5>章节</h5>
              <ul class="uk-nav uk-nav-default doc-nav">
                <li><a href="../01.html">第1章 - 数据挖掘概念</a></li>
                <li><a href="../02.html">第2章 - 分类</a></li>
                <li><a href="../03.html">第3章 - 聚类</a></li>
                <li><a href="../04.html">第4章 - 关联规则</a></li>
                <li><a href="../05.html">第5章 - 日志的挖掘与应用</a></li>
                <li><a href="../06.html">第6章 - 数据挖掘应用案例</a></li>
              </ul>
              <h5>实验课</h5>
              <ul class="uk-nav uk-nav-default doc-nav">
                <li><a href="./code-01.html">01</a></li>
                <li><a href="./code-02.html">02</a></li>
                <li><a href="./code-03.html">03</a></li>
                <li><a href="./code-04.html">04</a></li>
                <li><a href="./code-05.html">05</a></li>
                <li><a href="./code-06.html">06</a></li>
                <li><a href="./code-07.html">07</a></li>
                <li class="uk-active"><a href="./code-08.html">08</a></li>
                <li><a href="./code-09.html">09</a></li>
                <li><a href="./code-10.html">10</a></li>
                <li><a href="./code-11.html">11</a></li>
                <li><a href="./code-12.html">12</a></li>
                <li><a href="./code-13.html">13</a></li>
                <li><a href="./code-14.html">14</a></li>
                <li><a href="./code-15.html">15</a></li>
                <li><a href="./code-16.html">16</a></li>
              </ul>
            </div>
          </div>
          <div class="uk-width-1-1 uk-width-expand@m">
            <article class="uk-article">
              <h2>R语言快速入门 -- Part 2</h2>

<div>
<pre><code class='language-r' lang='r'>#删除向量里的某个元素
y &lt;- y[-c(1:2)]

y &lt;- c(1:10)
y[3] &lt;- 33 # √
y[3] &lt;- &quot;one&quot; # x
y #都成字符串了
</code></pre>
<h4>3.向量的运算</h4>

<pre><code class='language-r' lang='r'>x &lt;- c(1:10)
x + 1
x - 3
x &lt;- x + 1  #对每个元素进行操作

y &lt;- seq(1, 100)
x + y
x * y
x ** y # x的y次方
y %% x # 求余数
y %/% x # 整除

z &lt;- c(1,2)
x + z #循环相加

z &lt;- c(1,2,3)
x + z #报错

c(1,2,3) %in% c(1,2,2,4,5) #1,2在 3不在

x == y #测试x和y是否相等
</code></pre>
<h4>4.一些函数</h4>
<pre><code class='language-r' lang='r'>x &lt;- c(-5:5)
abs(x)

y &lt;- c(2,4,6)
sqrt(y)

log(16, base=2) #log以2为底，16的对数
exp(x) #计算指数
round(c(-2.3, -3.14)) #四舍五入
round(c(-2.3111, -3.14222), digits = 2)

x &lt;- 1:10
sum(x)

max(x)
min(x)
range(x)
mean(x)
var(x) #方差
sd(x) #标准差
prod(x) #联乘
median(x) #中位数

#找元素的位置（索引值）
t&lt;-c(1,4,6,7,9,3,1)
which.max(t)
which.min(t)
</code></pre>
<h4>5.矩阵与数组</h4>
<p>矩阵例子</p>
<p>state.x77 就是矩阵数据</p>
<p>heatmap直接矩阵就可以画出来</p>
<pre><code class='language-r' lang='r'>heatmap(state.x77)
</code></pre>
<pre><code class='language-r' lang='r'>x &lt;- 1:20
m &lt;- matrix(x, nrow = 4, ncol=5)
m

n &lt;- matrix(1:20,4,5)
n

#但是如果下面这样就会报错
n &lt;- matrix(1:20, 4, 6) 

n &lt;- matrix(1:20, 4, 4)  #√
n &lt;- matrix(1:20, 3, 3)  #×

n &lt;- matrix(1:20, 4) #√

#矩阵默认是按列来排列的
#如果
m &lt;- matrix(1:20, 4, byrow=T) #就是按照行来排列

#给行和列加名字
rnames &lt;- c(&quot;R1&quot;,&quot;R2&quot;,&quot;R3&quot;,&quot;R4&quot;)
cnames &lt;- c(&quot;C1&quot;,&quot;C2&quot;,&quot;C3&quot;,&quot;C4&quot;,&quot;C5&quot;)

dimnames(m) &lt;- list(rnames, cnames)
m

?dim #维数 维度
dim(x)&lt;- c(4,5) #变成了矩阵

x &lt;- 1:20
dim(x) &lt;- c(2,2,5) # 长宽高为2，2，5的长方体

?array
# 三维数组
dim1 &lt;- c(&quot;A1&quot;, &quot;A2&quot;)
dim2 &lt;- c(&quot;B1&quot;, &quot;B2&quot;, &quot;B3&quot;)
dim3 &lt;- c(&quot;C1&quot;, &quot;C2&quot;, &quot;C3&quot;, &quot;C4&quot;)
Z &lt;- array(1:24, c(2,3,4), dimnames = list(dim1, dim2, dim3))

# 内置数据集，数组，泰坦尼克
Titanic

#矩阵的索引
m &lt;- matrix(1:20, 4,5, byrow=T)
m[1,2] #一行二列
m[1,c(2,3,4)] #一行二三四列
m[2,] #整个第二行
m[，2] #整个第二列
m[-1,2] #去除第一行，再取第二列


rnames &lt;- c(&quot;R1&quot;,&quot;R2&quot;,&quot;R3&quot;,&quot;R4&quot;)
cnames &lt;- c(&quot;C1&quot;,&quot;C2&quot;,&quot;C3&quot;,&quot;C4&quot;,&quot;C5&quot;)
dimnames(m) &lt;- list(rnames, cnames)
m[&quot;R1&quot;,&quot;C2&quot;]

state.x77
state.x77[&quot;Alabama&quot;,]
state.x77[,&quot;Income&quot;]

# 矩阵运算
m + 1
m * 2
m + m

rowSums(m) #矩阵行的和
colSums(m) #矩阵列的和

rowMeans(m) #矩阵行的和
colMeans(m) #矩阵列的和


x &lt;- matrix[1:9, 3, 3]
y &lt;- matrix[2:10, 3, 3]

x * y # 内积 简单 各个位置相乘
x %*% y # 外积 笔记复杂

#对角线
diag(x)

#转置
t(x)
</code></pre>
<h4>6.列表</h4>
<p>向量和矩阵要求数值的类型一致，而列表可以是任意数据类型</p>
<pre><code class='language-r' lang='r'>state.center #美国每个州的经纬度

a &lt;- c(1:20)
b &lt;- matrix(1:20, 4)
c &lt;- mtcars
d &lt;- &quot;this is a test list&quot;

mlist &lt;- list(a,b,c,d)
mlist &lt;- list(first=a,second=b,third=c,fourth=d)
# 访问数据
mlist[1]

mlist[1:4] #×
mlist[c(1:4)]  #√

mlist$first

mlist[1] # 输出的是列表的子集， 这里还是个列表
mlist[[1]] #两个中括号,输出数据本身的类型
class(mlist[1])
class(mlist[[1]])

#删除列表中的元素
mlist[[4]] &lt;- NULL
</code></pre>
<h4>7.数据框</h4>
<p>数据库是一种表格式的数据结构，和数据集的概念一致，数据集是由数据构成的一个矩形数组，行表示观测，列表示变量，不同行业对数据框有不同的叫法。统计学上叫观测和变量，在数据挖掘和机器学习领域，叫他们示例和属性。</p>
<p>数据框实际上是一个列表。列表中的元素是向量，这些向量构成数据框的列，每一类必须具有相同的长度，所以数据框是矩形结构，而且数据框的列必须命名。</p>
<p>数据框的特点</p>
<ol>
<li>形状上很像矩阵</li>
<li>比较规则的列表</li>
<li>矩阵必须是统一数据类型</li>
<li>数据框每一列必须是统一类型，每一行可以不同</li>

</ol>
<p>（上Excel表）</p>
<pre><code class='language-r' lang='r'>mtcars #数据框的结构
</code></pre>
<pre><code class='language-r' lang='r'>state.name #美国50个州的名称
state.abb #美国50个州名称的简写
state.region #美国50个州的地理分类
state.x77 #美国50个州的8个指标

#这些数据可以合成一个数据框
state &lt;- data.frame(state.name, state.abb, state.region, state.x77)

#数据框的访问
state[1] #第一列内容
state[c(2,4)] #第二列和第四列的内容

state[&quot;Alabama&quot;,] #第一行

state$Murder #可以用这种加$的方式读取一列的数据

plot(women)
plot(women$weight,women$height)


#用attach和with的方式访问列数据, 就不需要$了
mtcars
attach(mtcars)
mgp
hp
detach(mtcars)

with(mtcars, {hp})
</code></pre>
<h4>8.因子</h4>
<p>在R中，变量可以分为</p>
<ol>
<li>名义型变量 -- 城市名字，省份名字</li>
<li>连续型变量 -- 身高，年龄</li>
<li>有序型变量 -- 段位 钻石，星耀，王者</li>

</ol>
<p>字符串更容易是名义型变量</p>
<p>数值更容易是连续型变量</p>
<p>名义型和有序型在R中称为因子(factor)。</p>
<p>因子主要为的是进行分类，计算频数和频率。</p>
<p>比如一个段位，倔强青铜，就是一个因子，咱们可以统计 微信33区轮回不灭 这个区里有多少青铜玩家</p>
<pre><code class='language-r' lang='r'>mtcars
?mtcars
mtcars$am
table(mtcars$am)

#其中am作为因子类型，1和0是这个因子的level

#向量转因子
f &lt;- factor(c(&quot;bronze1&quot;,&quot;bronze1&quot;,&quot;bronze2&quot;,&quot;bronze3&quot;,&quot;bronze2&quot;))

f &lt;- factor(c(&quot;bronze1&quot;,&quot;bronze1&quot;,&quot;bronze2&quot;,&quot;bronze3&quot;,&quot;bronze2&quot;),ordered=T,levels=c(&quot;bronze3&quot;,&quot;bronze2&quot;,&quot;bronze1&quot;))

#绘图
plot(mtcars$cyl) #散点图
plot(factor(mtcars$cyl)) #条形图

num &lt;- 1:100
num 
#每隔10个尽心分组
cut (num, c(seq(0,100,10)))
</code></pre>
<h4>9.缺失数据</h4>
<p>有些数据没有记录，R中用NA(not available)来代替，注意这个NA代表的不一定是0，它可以是0，也可以是任何值，只能说是不确定比如之前</p>
<pre><code class='language-r' lang='r'>1 + NA

a &lt;- c(NA,1:49)
a
sum(a)
mean(a)

#加上na.rm 就是na remove
sum(a, na.rm=TRUE)

is.na(a)
na.omit(a)
</code></pre>
<p>除了NA，还有NaN，它表示不可能的值，比如任意数除以0</p>
<p>还有Inf表示无穷，它分为正Inf和负Inf，表示正无穷和负无穷</p>
<p>NA是存在的值，</p>
<p>NaN是不存在的</p>
<p>Inf表示存在，且无穷的值</p>
  

</div>



            </article>
          </div>
        </div>
      </div>
    </div>

    <div id="offcanvas-docs" data-uk-offcanvas="overlay: true">
      <div class="uk-offcanvas-bar">
        <button class="uk-offcanvas-close" type="button" data-uk-close></button>
        <h5 class="uk-margin-top">关于这门课</h5>
        <ul class="uk-nav uk-nav-default doc-nav">
          <li><a href="../indext.html">大纲</a></li>
        </ul>
        <h5 class="uk-margin-top">章节</h5>
        <ul class="uk-nav uk-nav-default doc-nav">
          <li><a href="../01.html">第1章 - 数据挖掘概念</a></li>
          <li><a href="../02.html">第2章 - 分类</a></li>
          <li><a href="../03.html">第3章 - 聚类</a></li>
          <li><a href="../04.html">第4章 - 关联规则</a></li>
          <li><a href="../05.html">第5章 - 日志的挖掘与应用</a></li>
          <li><a href="../06.html">第6章 - 数据挖掘应用案例</a></li>
        </ul>
        <h5>实验课</h5>
        <ul class="uk-nav uk-nav-default doc-nav">
          <li><a href="./code-01.html">01</a></li>
          <li><a href="./code-02.html">02</a></li>
          <li><a href="./code-03.html">03</a></li>
          <li><a href="./code-04.html">04</a></li>
          <li><a href="./code-05.html">05</a></li>
          <li><a href="./code-06.html">06</a></li>
          <li><a href="./code-07.html">07</a></li>
          <li class="uk-active"><a href="./code-08.html">08</a></li>
          <li><a href="./code-09.html">09</a></li>
          <li><a href="./code-10.html">10</a></li>
          <li><a href="./code-11.html">11</a></li>
          <li><a href="./code-12.html">12</a></li>
          <li><a href="./code-13.html">13</a></li>
          <li><a href="./code-14.html">14</a></li>
          <li><a href="./code-15.html">15</a></li>
          <li><a href="./code-16.html">16</a></li>
        </ul>
      </div>
    </div>

    <footer class="uk-section uk-text-center uk-text-muted">
      <div class="uk-container uk-container-small">
        <div class="uk-margin-medium"></div>
      </div>
    </footer>

    <script src="../js/awesomplete.js"></script>
    <script src="../js/custom.js"></script>
  </body>
</html>
